﻿using System;
using Microsoft.VisualStudio.TestTools.UnitTesting;
using Kanban.Business;
using Kanban.Entity;
using System.Collections.Generic;

namespace Kanban.Test
{
    [TestClass]
    public class Testes_Quadro
    {
        [TestMethod]
        public void Deve_Adicionar_Novo_Quadro()
        {
            var business = new QuadroBusiness();

            var quadro = new Quadro();
            quadro.Nome = "Quadro TESTE";
            quadro.CriadoPor = new Usuario();
            quadro.CriadoPor.Id = 1;

            business.Adicionar(quadro);

            Assert.IsTrue(quadro.Id > 0);
        }

        [TestMethod]
        public void Deve_Obter_Quadro_Por_Id()
        {
            var business = new QuadroBusiness();

            Quadro quadro = business.ObterPorId(1);

            Assert.IsNotNull(quadro);
            Assert.IsTrue(quadro.Id > 0);
        }

        [TestMethod]
        public void Deve_Listar_Todos_Quadros()
        {
            var business = new QuadroBusiness();

            List<Quadro> lista = business.Listar();

            Assert.IsNotNull(lista);
            Assert.IsTrue(lista.Count > 0);
        }

        [TestMethod]
        public void Deve_Excluir_Quadro_Por_Id()
        {
            var business = new QuadroBusiness();

            var quadro = new Quadro();
            quadro.Nome = "Quadro TESTE";
            quadro.CriadoPor = new Usuario();
            quadro.CriadoPor.Id = 1;

            business.Adicionar(quadro);

            business.Remover(quadro.Id);

            Quadro quadroExcluido = business.ObterPorId(quadro.Id);

            Assert.IsNull(quadroExcluido);
        }
    }
}
